package com.yyg.boot.interceptor;

import com.hazelcast.map.MapInterceptor;

/**
 * @Author 一一哥Sun
 * @Date Created in 2020/4/24
 * @Description map数据变化的拦截器
 */
public class IMapInterceptor implements MapInterceptor {

    /**拦截IMap的get()方法。可以返回其他值来替换原有值。返回null将不影响原有操作。*/
    @Override
    public Object interceptGet(Object value) {
        return null;
    }

    /**在get()方法操作执行完毕后被调用。*/
    @Override
    public void afterGet(Object value) {

    }

    /**拦截IMap的put()方法。返回的值会设置到map中。返回null时原有的put数据不会发生任何改变。 抛出异常会取消put操作。 */
    @Override
    public Object interceptPut(Object oldValue, Object newValue) {
        return null;
    }

    /**在put()方法操作执行完毕后被调用。*/
    @Override
    public void afterPut(Object value) {

    }

    /**拦截IMap的remove()方法。返回被删除对象或null将继续执行删除。 抛出异常会取消remove操作。 */
    @Override
    public Object interceptRemove(Object removedValue) {
        return null;
    }

    /**在remove()方法操作执行完毕后被调用。*/
    @Override
    public void afterRemove(Object oldValue) {
    }

}
